//
//  FXEnum.h
//  FoxitApp
//
//  Created by sijia_liu on 15/6/4.
//
//

#ifndef FoxitApp_FXEnum_h
#define FoxitApp_FXEnum_h
#import <UIKit/UIKit.h>
// moved utils.h

typedef enum
{
    /** @brief    Zoom mode: unknown. */
    PDF_DISPLAY_ZOOMMODE_UNKNOWN = 0,
    /** @brief    Zoom mode: fit page. */
    PDF_DISPLAY_ZOOMMODE_FITPAGE,
    /** @brief    Zoom mode: fit page width. */
    PDF_DISPLAY_ZOOMMODE_FITWIDTH,
    /** @brief    Zoom mode: fit page height. */
    PDF_DISPLAY_ZOOMMODE_FITHEIGHT
} PDF_DISPLAY_ZOOMMODE;

typedef enum
{
    /** @brief    Unknown page mode. */
    PDF_LAYOUT_MODE_UNKNOWN = 0,
    /** @brief    Continuous page mode. */
    PDF_LAYOUT_MODE_CONTINUOUS,
    /** @brief    Single page mode. */
    PDF_LAYOUT_MODE_SINGLE,
    /** @brief    Facing mode. */
    PDF_LAYOUT_MODE_TWO,
    /** @brief    Thumbnail mode. */
    PDF_LAYOUT_MODE_MULTIPLE,
    /** @brief    Reflow mode. Currently, not supported. */
    PDF_LAYOUT_MODE_REFLOW,
    /** @brief    Thumbnail mode. */
    PDF_LAYOUT_MODE_PAGEMANAGE,
} PDF_LAYOUT_MODE;

typedef enum
{
    PDF_DISPLAY_MODE_UNKNOWN = 0,
    PDF_DISPLAY_MODE_SINGLE,
    PDF_DISPLAY_MODE_CONTINUOUS,
    PDF_DISPLAY_MODE_TWO,
    PDF_DISPLAY_MODE_MULTIPLE,
    PDF_DISPLAY_MODE_TWO_COVER,
    PDF_DISPLAY_MODE_REFLOW,
} PDF_DISPLAY_MODE;

enum CropMode
{
    CropMode_None = 0,
    CropMode_Fixed,
    CropMode_Smart,
};
typedef enum CropMode CropMode;

enum DrawWithAnnot
{
    DrawWithAnnot_None = 0,
    DrawWithAnnot_Part,
    DrawWithAnnot_All,
};

typedef enum DrawWithAnnot DrawWithAnnot;

enum EncryptTypes
{
    EncryptTypes_None = 0,
    EncryptTypes_Standard,
    EncryptTypes_RMS,
    EncryptTypes_Unknown,
};
typedef enum EncryptTypes EncryptTypes;

//circle rectangle 
typedef enum
{
    EDIT_ANNOT_RECT_TYPE_UNKNOWN = -1,
    EDIT_ANNOT_RECT_TYPE_LEFTTOP = 0,
    EDIT_ANNOT_RECT_TYPE_LEFTMIDDLE,
    EDIT_ANNOT_RECT_TYPE_LEFTBOTTOM,
    EDIT_ANNOT_RECT_TYPE_MIDDLETOP,
    EDIT_ANNOT_RECT_TYPE_MIDDLEBOTTOM,
    EDIT_ANNOT_RECT_TYPE_RIGHTTOP,
    EDIT_ANNOT_RECT_TYPE_RIGHTMIDDLE,
    EDIT_ANNOT_RECT_TYPE_RIGHTBOTTOM,
    EDIT_ANNOT_RECT_TYPE_FULL,
} EDIT_ANNOT_RECT_TYPE;

//moreSettingBar
typedef enum ReadItemType
{
    SINGLE,
    CONTINUOUS,
    DOUBLEPAGE,
    THUMBNAIL,
    ONLYTEXT,
    READ,
    CUTWHITEEDGE,
    LOCKSCREEN,
    LOCKZOOM,
    LOCKDRAGDIRECTION,
    BRIGHTNESS,
    NIGHTMODEL,
    SYSTEMBRIGHTNESS,
    WHITECOLOR,
    LIGHTGRAYCOLOR,
    LIGHTREDCOLOR,
    LIGHTBROWNCOLOR,
    VIOLETCOLOR,
    DARKGREENCOLOR,
    DARKBROWNCOLOR,
    CUSTOMCOLOR
} ReadItemType;

//MoreAnnotationBar
typedef enum AnnotationItemType
{
    UNDERLINE,
    STRICKOUT,
    BREAKLINE,
    HIGHLIGHT,
    INSERT,
    RTCTANGLE,
    LINE,
    CIRCLE,
    ARROWS,
    PENCILE,
    ERASER,
    TYPEWRITER,
    CALLOUT,
    SIGN,
    STAMP,
    NOTE,
    DELETEBUTTON
    
} AnnotationItemType;

typedef enum
{
    FileSortType_Name= 0,
    FileSortType_Date= 1,
    FileSortType_Size= 2,
    FileSortType_LastView = 3
} FileSortType;

typedef enum
{
    FileSortMode_Ascending,
    FileSortMode_Descending
} FileSortMode;

typedef enum : NSInteger {
    Net_DISABLE = 0,
    Net_WIFI,
    NET_WIFI_WWAN,
} TrackingNetworkStatus;

typedef NS_ENUM(NSInteger, currentStatus)
{
    NET_NONE = 0,
    NET_WIFI = 1,
    NET_GPRS = 2,
    NET_VIA2G = 3,
    NET_VIA3G = 4,
    NET_VIA4G = 5
};

typedef enum
{   CountryNone = 0,
    CountryChina = 1,
    CountryUSA = 2,
}CountryType;

typedef enum : NSInteger {
    VOLUMACTION_NONE = 2,
    VOLUMACTION_PAGEFLIPPING,
    VOLUMACTION_ZOOM,
} VolumKeyAction;


typedef  enum FileListType
{
    FileListType_Local = 0,
    FileListType_Recent = 1,
    FileListType_Favorite = 2,
    FileListType_Cloud = 3,
    
} FileListType;

typedef enum DisplayStyle
{
    DetailStyle,
    ThumbStyle,
    
} DisplayStyle;

typedef enum
{
    ScreenSizeMode_35 = 0,    //3.5英寸
    ScreenSizeMode_40,        //4英寸
    ScreenSizeMode_47,        //4.7英寸
    ScreenSizeMode_55,        //5.5英寸
    ScreenSizeMode_97,         //9.7英寸
    ScreenSizeMode_61,        //6.1英寸
    ScreenSizeMode_129         //12.9英寸
} ScreenSizeMode;

typedef NS_ENUM(NSInteger, colorButtonTag)
{
    WHITECOLORBT_TAG = 101,
    LIGHTGRAYCOLORBT_TAG = 102,
    LIGHTREDCOLORBT_TAG = 103,
    LIGHTBROWNCOLORBT_TAG = 104,
    VIOLETCOLORBT_TAG = 105,
    DARKGREENCOLORBT_TAG = 106,
    DARKBROWNCOLORBT_TAG = 107,
    CUSTOMCOLORBT_TAG = 108,
};

typedef NS_ENUM(NSInteger, FX_URL_RESULT_STATE)
{
    FX_URL_SUCCESS = 101,// 校验成功
    FX_URL_FORMAT_FAIL = 102,// 不是正常链接
    FX_URL_FILE_NOT_PDF_OFD = 103,// 不是PDF或者OFD文档
    FX_URL_FAIL = 104,// 文件下载时报错
};

typedef NS_ENUM(NSInteger, FX_SHARE_TYPE)
{
    FX_SHARE_URL_TYPE = 101,// 分享链接
    FX_SHARE_LOCALFILE_TYPE = 102,// 分享本地文件
    FX_SHARE_IMAGE_TYPE = 103// 分享图片
};

typedef NS_ENUM(NSInteger, FX_FileMerge_State)
{
    FX_FileMerge_State_OK = 0,// 合并成功
    FX_FileMerge_State_Fail = 1,// 合并失败
    FX_FileMerge_State_UnSupportType,// 不支持的文件类型 只支持PDF、OFD 格式
    FX_FileMerge_State_FileLess,// 文件太少 至少1个
    FX_FileMerge_State_FileSecurity// 文件中含有加密文件
};

typedef NS_ENUM(NSInteger, FXAnalyticsTraceType)
{
    ATY_Home_Main_Show,// 首页页面展示
    ATY_Home_Document_Show,// 文档页面展示
    ATY_Home_Function_Show,// 应用页面展示
    ATY_Home_My_Show, // 我的页面展示
    
    
    ATY_Home_Main_Acion,// 首页事件响应
    ATY_Home_Document_Acion,// 文档事件响应
    ATY_Home_Function_Acion,// 应用事件响应
    ATY_Home_My_Acion, // 我的事件响应

    ATY_Read_View,// 文档阅览
    ATY_Read_FileSign_View,// 文档签批
    
    ATY_Login_Event, // 登录
    ATY_FileShare_Event, // 文件分享
    ATY_AppShare_Event, // APP分享
    ATY_Img2OFD_Event, // 图片转ofd
    ATY_Img2PDF_Event, // 图片转pdf
    ATY_PDF2OFD_Event, // pdf转ofd
    ATY_OFD2PDF_Event, // ofd转pdf
    ATY_HomePageSearch_Event, // 首页文件搜索
    ATY_DocumentPageSearch_Event, // 文档页文件搜索
    ATY_TextSearchEvent_Event, // 文档里的文本搜索
    ATY_adShow_Event, // 广告曝光
    ATY_adClick_Event, // 广告点击

};

typedef NS_ENUM(NSInteger, FXAnalyticsTraceAction){
    ATA_Home_Main,// 几个主页

    // 首页
    ATA_Home_Main_Show_Near,// 最近
    ATA_Home_Main_Show_Collection,// 收藏
    
    // 文档
    ATA_Home_Document_Show_Remote,// 远程文件
    ATA_Home_Document_Show_Security,// 安全分发
    ATA_Home_Document_Show_Cloud,// 云文档
    
    // 应用
    ATA_Home_Function_Show_ChooseImage,// 选择图片页面
    ATA_Home_Function_Show_ChooseFIle,// 选择文件页面
    ATA_Home_Function_Show_WIFI,// Wi-Fi文件传输页面曝光

    // 我的
    ATA_Home_My_Show_Login, // 登录首页
    ATA_Home_My_Show_Login_Mob, // 验证码登录页面曝光
    ATA_Home_My_Show_Login_Account, // 账户登录页面曝光
    ATA_Home_My_Show_FaceBack, // 意见反馈页面曝光
    ATA_Home_My_Show_AboutUs, // 关于我们页面曝光
    ATA_Home_My_Show_Agreement, // 用户协议页面曝光
    ATA_Home_My_Show_OpenSourceLicense, // 开放源代码许可
    ATA_Home_My_Show_Privacy, // 隐私政策页面曝光
    ATA_Home_My_Show_Setting, // 设置页面曝光
    ATA_Home_My_Show_Setting_AutoSyn, // 设置自动同步文档页面曝光
    
    
    // 首页点击事件
    ATA_Home_Main_Acion_homePageClick, // “首页”tab点击
    ATA_Home_Main_Acion_latelyClick, // 最近按钮点击
    ATA_Home_Main_Acion_collectionClick, // 收藏夹按钮点击
    ATA_Home_Main_Acion_largeViewClick, // 切换大视图按钮点击
    ATA_Home_Main_Acion_smallViewClick, // 切换小视图按钮点击
    ATA_Home_Main_Acion_searchClick, // 查找文件点击
    ATA_Home_Main_Acion_openFileClick, // 打开文件按钮点击
    ATA_Home_Main_Acion_newFolderClick, // 新建文件夹按钮点击
    ATA_Home_Main_Acion_openLocalFolderClick, // 打开本地文件按钮点击
    ATA_Home_Main_Acion_toOFDClick, // 将文件转换成OFD按钮点击
    
    // 文档点击事件
    ATA_Home_Document_Acion_documentPageClick, // “文档”tab点击
    ATA_Home_Document_Acion_searchClick, //  查找文件点击
    ATA_Home_Document_Acion_largeViewClick, // 切换大视图按钮点击
    ATA_Home_Document_Acion_smallViewClick, // 切换小视图按钮点击
    ATA_Home_Document_Acion_reorderClick, // 排序按钮点击
    ATA_Home_Document_Acion_reorder_timeClick, // 按时间排序点击
    ATA_Home_Document_Acion_reorder_nameClick, // 按名称排序点击
    ATA_Home_Document_Acion_reorder_sizeClick, // 按大小排序点击
    ATA_Home_Document_Acion_operateClick, // 多选按钮点击
    ATA_Home_Document_Acion_copyClick, // 复制按钮点击
    ATA_Home_Document_Acion_moveClick, // 移动按钮点击
    ATA_Home_Document_Acion_renameClick, // 重命名按钮点击
    ATA_Home_Document_Acion_deleteClick, // 删除按钮点击
    ATA_Home_Document_Acion_shareFileClick, // 分享按钮点击
    ATA_Home_Document_Acion_remoteFileClick, // 远程文件按钮点击
    ATA_Home_Document_Acion_securityDocClick, // 安全分发的文件点击
    ATA_Home_Document_Acion_cloudFileClick, // 云文件点击
 
    // 应用点击事件
    ATA_Home_Function_Acion_functionClick, //  “应用”tab点击
    ATA_Home_Function_Acion_img2ofdClick, // 图片转ofd按钮点击
    ATA_Home_Function_Acion_img2pdfClick, // 图片转pdf按钮点击
    ATA_Home_Function_Acion_pdf2ofdClick, // pdf转ofd按钮点击
    ATA_Home_Function_Acion_ofd2pdfClick, // ofd转pdf按钮点击
    ATA_Home_Function_Acion_WiFiTransClick, // Wi-Fi文件传输按钮点击

    // 我的点击事件
    ATA_Home_My_Acion_myPageClick, // “我的”tab点击
    ATA_Home_My_Acion_loginClick, // 登录/注册按钮点击
    ATA_Home_My_Acion_wechatLoginClick, // 微信登录按钮点击
    ATA_Home_My_Acion_dingdingLoginClick, // 钉钉登录按钮点击
    ATA_Home_My_Acion_qqLoginClick, // qq登录按钮点击
    ATA_Home_My_Acion_weiboLoginClick, // 微博登录按钮点击
    ATA_Home_My_Acion_accountLoginClick, // 账号登录/注册按钮点击
    ATA_Home_My_Acion_appIDLoginClick, // 苹果账号登录点击
    ATA_Home_My_Acion_logoutClick, // 退出登录按钮点击
    ATA_Home_My_Acion_shareAppClick, // 关于我们-分享给好友点击
    ATA_Home_My_Acion_scoreAppClick, // 欢迎评分按钮点击
    ATA_Home_My_Acion_openClickBorderTurnPage, // 开启单页模式下点击左右边界翻页
    ATA_Home_My_Acion_closeClickBorderTurnPage, // 关闭单页模式下点击左右边界翻页
    ATA_Home_My_Acion_checkForUpdateClick, // 检查更新按钮点击
    ATA_Home_My_Acion_updateClick, // 去更新按钮点击
    ATA_Home_My_Acion_cancleUpdateClick, // 取消更新按钮点击
    
    // 文档阅读行为
    ATA_Read_openDocument, // 打开文档
    ATA_Read_closeDocument, // 关闭文档
    ATA_Read_collectionDocument, // 收藏文档
    ATA_Read_cancleCollectionDocument, //   取消收藏文档
    ATA_Read_moreOperationClick, // 文档未打开时的最右侧“更多”操作按钮点击
    ATA_Read_historicalVersionClick, // 历史版本按钮点击
    ATA_Read_clearReadingRecords, // 清除最近的阅读记录
    ATA_Read_synchronizeCloudDoc, // 文件同步到云端
    ATA_Read_addBookMark, // 添加书签
    ATA_Read_deleteBookMark, // 取消书签
    ATA_Read_printClick, //  打印
    ATA_Read_navigationClick, // 导航按钮点击
    ATA_Read_readingModeClick, // 阅读模式点击
    ATA_Read_siglePageMode, // 单页模式上报
    ATA_Read_doublePageMode, // 连续页模式上报
    ATA_Read_thumbnailMode, // 缩略图模式上报
    ATA_Read_rearrangementClick, // 文本重排按钮点击
    ATA_Read_readButtonClick, // 朗读按钮点击
    ATA_Read_moreAttributeClick, // 签批右边的“更多”按钮点击
    ATA_Read_fileManagementClick, //  文件管理页面点击
    ATA_Read_attributeClick, // 属性页面点击
    ATA_Read_fileInfoPageShow, // 文件信息页面曝光
    ATA_Read_metadataPageShow, // 元数据页面曝光
    ATA_Read_safePageShow, // 安全页面曝光
    
    // 文档签批
    ATA_Read_fileSigning_fileSigningClick, // 签批按钮点击
    ATA_Read_fileSigning_textHighlightingClick, //  文本高亮按钮点击
    ATA_Read_fileSigning_strikethroughClick, // 删除线按钮点击
    ATA_Read_fileSigning_pencilClick, // 手写笔按钮点击
    ATA_Read_fileSigning_eraserClick, // 橡皮擦按钮点击
    ATA_Read_fileSigning_typewriterClick, // 打字机按钮点击
    ATA_Read_fileSigning_moreSigningClick, // 更多按钮点击
    ATA_Read_fileSigning_wavyLineClick, // 波浪线按钮点击
    ATA_Read_fileSigning_underlineClick, // 下划线按钮点击
    ATA_Read_fileSigning_replaceTextClick, // 替换文本按钮点击
    ATA_Read_fileSigning_insertTextClick, // 插入文本按钮点击
    ATA_Read_fileSigning_rectangleClick, // 矩形按钮点击
    ATA_Read_fileSigning_ellipseClick, // 椭圆按钮点击
    ATA_Read_fileSigning_lineClick, // 线条按钮点击
    ATA_Read_fileSigning_arrowClick, // 箭头按钮点击
    
    ATA_Read_fileSigning_areaHighlightClick, // 区域高亮按钮点击
    ATA_Read_fileSigning_annotationClick, // 注释框按钮点击
    ATA_Read_fileSigning_textFrameClick, // 文本框按钮点击
    ATA_Read_fileSigning_remarkClick, // 备注按钮点击
    ATA_Read_fileSigning_annexClick, // 附件按钮点击
    ATA_Read_fileSigning_sealClick, // 图章按钮点击
    ATA_Read_fileSigning_autographClick, // 签名按钮点击
    
    ATA_Login_method, // 验证码登录、微信、钉钉登录等
    ATA_Login_is_success, // 是否登录成功，1代表成功，0代表失败
    ATA_Login_fail_reason, // 验证码错误，密码错误、取消授权等错误信息等由后台开发返回

    ATA_APP_FileShare_method, // qq、微信、微博等分享
    ATA_APP_FileShare_is_success, // 是否分享成功，1代表成功，0代表失败
    ATA_APP_FileShare_fail_reason, // 分享失败的原因

    ATA_Img2OFD_PDF_choosedImg, // 选择要转换的图片，点击“选取”按钮之后
    ATA_Img2OFD_PDF_mergeConvert, // 选择多张图片时，点击“合并成一个ofd文件”时上报
    ATA_Img2OFD_PDF_independentConvert, // 选择多张图片时，点击“分别转换成ofd文件”时上报
    ATA_Img2OFD_PDF_startConvert, // 选择目标文件夹后，点击确定按钮时上报
    ATA_Img2OFD_PDF_convert_Success, // 是否转换成功，1代表成功，0代表失败

    ATA_PDF2OFD_choosedPDF, // 选择PDF文件之后，点击“确定”时上报
    ATA_OFD2PDF_choosedOFD, // 选择ofd文件之后，点击“确定”时上报
    
    ATA_PDF2OFD_PDF_startConvert, // 选择目标文件夹后，点击确定按钮时上报
    ATA_PDF2OFD_PDF_convert_Success, // 是否转换成功，1代表成功，0代表失败

    ATA_Home_Document_Text_Search_searchClick, // 点击搜索按钮时触发
    ATA_Home_Document_Text_Search_startSearch, // 输入文本之后，开始搜索时上报
    ATA_Home_Document_Text_Search_searchResult, // 搜索结果展示的时候上报

    ATA_adShow_click_ad_type, // 广告类型
    ATA_adShow_click_ad_id, // 广告id
    ATA_adShow_click_ad_name, // 广告描述

};

// 功能枚举
typedef NS_ENUM(NSInteger, FxFunctioinType) {
    FxFunctioinTypeHighlight = 1,   /// 文本高亮
    FxFunctioinTypeUnderline,       /// 下划线
    FxFunctioinTypeSquiggly,        /// 波浪线
    FxFunctioinTypeStrikeout,       /// 删除线
    FxFunctioinTypeReplaceText,     /// 替换文本
    FxFunctioinTypeInsertText,      /// 插入文本
    FxFunctioinTypeRectangle,       /// 矩形
    FxFunctioinTypeCircle,          /// 椭圆
    FxFunctioinTypeLine,            /// 线条
    FxFunctioinTypeLineArrow,       /// 箭头
    FxFunctioinTypePencil,          /// 手写笔
    FxFunctioinTypeInkPencil,       /// 手写笔(图片版)
    FxFunctioinTypeErase,           /// 橡皮
    FxFunctioinTypeAreaHighlight,   /// 区域高亮
    FxFunctioinTypeTypeWriter,      /// 打字机
    FxFunctioinTypeTypeComposite,   /// 打字机(可以加图片)
    FxFunctioinTypeCallout,         /// 注释框
    FxFunctioinTypeNote,            /// 备注
    FxFunctioinTypeAttachment,      /// 附件
    FxFunctioinTypeStamp,           /// 图章
    
    FxFunctioinTypeBookMark,        /// 书签
    FxFunctioinTypeSearch,          /// 搜索
    FxFunctioinTypePrinter,         /// 打印机
    FxFunctioinTypeShare,           /// 分享
    FxFunctioinTypeDocMore,         /// 文档更多 - 页面管理/文件属性 如果需要拆分出来，再加其对应的枚举值
    FxFunctioinTypeNavigation,      /// 导航- -目录/书签/注释/缩略图/附件/语义 - 备注同上
    FxFunctioinTypeReadingMode,     /// 阅读模式- -单页/连续滚动/缩略图/自动亮度/锁屏/文本重排/朗读
    FxFunctioinTypeAllAnnotation,   /// 所有注释入口 - - 不同的注释可拆分 - 添加对应的枚举
    FxFunctioinTypeAutograph,       /// 签名 - - - -
    FxFunctioinTypeMoreSign,        /// 更多签批
    FxFunctioinTypeTextRefersh,     /// 文本重排
    
    FxFunctioinTypeUnknown          /// 未识别类型
};

// stamp 图章枚举
typedef NS_ENUM(NSInteger, FxStampAnnotIcon) {
    FxStampAnnotIconApproved,           /// 已批准
    FxStampAnnotIconCompleted,          /// 已完成
    FxStampAnnotIconConfidential,       /// 机密
    FxStampAnnotIconDraft,              /// 草稿
    FxStampAnnotIconEmergency,          /// 紧急
    FxStampAnnotIconExpired,            /// 过期
    FxStampAnnotIconFinal,              /// 最终
    FxStampAnnotIconReceived,           /// 已接收
    FxStampAnnotIconReviewed,           /// 已审阅
    FxStampAnnotIconRevised,            /// 已修订
    FxStampAnnotIconVerified,           /// 已核实
    FxStampAnnotIconVoid,               /// 作废
    FxStampAnnotIconAccepted,           /// 已接收
    FxStampAnnotIconInitial,            /// 初始
    FxStampAnnotIconRejected,           /// 已拒绝
    FxStampAnnotIconSignHere,           /// 在此签名
    FxStampAnnotIconWitness,            /// 证据
    FxStampAnnotIconDynaApproved,       /// 已批准 + 日期
    FxStampAnnotIconDynaConfidential,   /// 机密 + 日期
    FxStampAnnotIconDynaReceived,       /// 已接收 + 日期
    FxStampAnnotIconDynaReviewed,       /// 已审阅 + 日期
    FxStampAnnotIconDynaRevised,        /// 已修订 + 日期
};

typedef void (^getFileListHandler)(NSMutableArray *fileList);
typedef void (^getThumbnailHandler)(UIImage *imageThumbnail, int pageIndex, NSString *pdfPath,BOOL islock);
#endif
